官方的Ubuntu Server镜像就是个坑货,还是刷 Armbian 省心~~
Orange Pi官方有为Orange Pi Lite准备官方的Ubuntu Server镜像,下载下来用 dd
拷贝到TF卡上就行。
- 去 这里 下载ubuntu_server_For_OrangePi_Lite
- 解压下载下来的 xz 文件
xz -d ubuntu_server_lite.img.xz
- 确定TF卡所属的磁盘设备
sudo fdisk -l
结果为:
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x18b918b8 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 16779263 16777216 8G 82 Linux swap / Solaris /dev/sda2 16779264 100665343 83886080 40G 83 Linux /dev/sda3 100665344 250069679 149404336 71.2G 83 Linux Disk /dev/sdb: 29.7 GiB, 31914983424 bytes, 62333952 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xdeee394b Device Boot Start End Sectors Size Id Type /dev/sdb1 40960 172031 131072 64M b W95 FAT32 /dev/sdb2 172032 62332928 62160897 29.7G 83 Linux
这里可以看到TF卡所属的磁盘文件为
/dev/sdb
- 写入镜像文件到TF卡
sudo dd bs=1M if=ubuntu_server_lite.img of=/dev/sdb
不过官方的Ubuntu Server其实是有问题的,需要做一番修改
写入镜像到TF卡后,你会发现TF卡被分成了两个分区,一个是BOOT分区,一个是linux分区。
由于Orange Pi Lite只有wifi接口,因此还需要配置wifi才能让Orange Pi Lite连接上网络。
挂载TF卡上的linux分区,这里由于我使用了 udiskie
来自动挂载可移动磁盘,因此系统自动将该分区挂载到了 /var/media/$USER/linux
下了
- 进入linux分区的挂载点
cd /var/media/lujun9972/linux
- 使用
wpa_passphrase
生成配置sudo wpa_passphrase $SSID $WIFIPWD |sudo tee etc/network/wpa_passphrase.conf
注意这里用了
sudo tee
来将结果存入etc/network/NETGEAR90.conf
中,而 不能直接用>
来重定向。可以配置多个wifi
sudo wpa_passphrase $SSID $WIFIPWD |sudo tee -a etc/network/wpa_passphrase.conf
- 将wlan加入
etc/network/interfaces
中sudo cat <<EOF |sudo tee -a etc/network/interfaces auto wlan1 iface wlan1 inet dhcp wpa-conf /etc/network/wpa_passphrase.conf EOF
至此wifi就设置好了,退出TF卡,插入Orange Pi Lite后通电,Orange Pi Lite就会自动连接上wifi了
在路由器上查到Orange Pi Lite分配的IP后,通过ssh登陆
ssh root@orangepilite
第一次登陆会看到提示,这时ubuntu server只会用到TF卡中的部分空间
[lujun9972@T520 ~]$ ssh root@192.168.1.8 root@192.168.1.8's password: Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.4.39 armv7l) * Documentation: https://help.ubuntu.com/ Last login: Thu Jan 1 00:19:28 1970 **************************************** WARNING: TO RESIZE FILESYSTEM RUN: sudo fs_resize to remove this message run: sudo rm /usr/local/bin/fs_resize_warning ****************************************
按照提示运行
fs_resize
重启后,ubuntu server自动扩展到使用TF卡的所有空间
后面的操作都是通过ssh在Orange Pi Lite上执行
sed -i 's/ports.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/' /etc/apt/sources.list
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
刷完官网上的Ubuntu Server后你会发现无法运行apt update,总是提示
Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/dpkg/status E: The package lists or status file could not be parsed or opened.
这是因为官网Ubuntu Server上的 /var/lib/dpkg/status
和 /var/lib/dpkg/available
被损坏了。
查看 status
文件发现文件头多了几行莫名其妙的文字,文件后面出现很多乱码,把这些乱七八糟的东西删掉。
sed -i '3436,$d' /var/lib/dpkg/status
sed -i '1,11d' /var/lib/dpkg/status
然后用root用户执行
dpkg --clear-avail
apt-get update
apt-get install -f
apt-get --reinstall install liblockfile1 liblockfile-bin usbmount alsa-base linux-sound-base alsa-utils
apt-get dist-upgrade
升级成功
- 安装更新管理器核心
update-manager-core
apt-get install update-manager-core
- 编辑
/etc/update-manager/release-upgrades
配置文件,设置Prompt=lts - 启动升级进程
sudo do-release-upgrade